Generating sentiment analysis of content

ABSTRACT

Certain aspects of the present disclosure provide techniques for providing sentiment analysis of content. In order to determine the overall sentiment of content, a request is received by a sentiment analyzer, which then identifies a content identification number and retrieves comments associated with the content identification number. The sentiment analyzer pre-processes the comments, which includes removing all personal identifying information from the comments. The sentiment analyzer sends the pre-processed comments to a natural language processing service, and in turn, receives sentiment indications corresponding to the comments provided. Based on the sentiment scores, the sentiment analyzer generates a sentiment analysis and displays the sentiment analysis in the graphical user interface generated by the sentiment analyzer.

CROSS-REFERENCE TO RELATED APPLICATIONS

This Application is a continuation of and hereby claims priority under35 U.S.C. § 120 to co-pending U.S. patent application Ser. No.16/288,967, filed on Feb. 28, 2019, the entire contents of which areincorporated herein by reference.

INTRODUCTION

Aspects of the present disclosure relate to a method and system ofgenerating a sentiment analysis of content based on comments. Inparticular, embodiments of the present disclosure relate to identifyinga set of comments associated with a content item and mapping sentimentindications from a natural language processing service to pre-definedsentiment categories to generate a sentiment analysis of the content todisplay in a graphical user interface.

BACKGROUND

Content creators develop a variety of different types of content forconsumption by viewers including video, audio, and documents. At thesame time, content creators can request feedback from viewers of thecontent in order to determine any issues in the content that need to beaddressed, what viewers like and dislike about the content, and how thecontent can be improved. For example, viewers can view a video createdto explain how to use a specific feature of a software application. Inthe comments, the viewers can indicate the video quality is “grainy” andthat it is difficult to hear what is being said in the video.

However, a number of limitations hinder content creators from adjustingcontent based on comments from viewers. For example, a content creatoroften does not have direct access to comments from viewers. In suchcases, the content creator may need to submit a request for suchcomments. This request can take time to process and can be furtherdelayed if comments from multiple content items are stored together.Even if the content creator does have direct access to comments (orreceives comments based on the request), the number of comments can beoverwhelming, preventing the content creator from getting a clearpicture of what viewer sentiment is of the content.

Further, content creators are not the only party interested in knowingwhat viewers think about content items. For example, a content creatoris creating content items (e.g., videos) for an organization as part ofa series directed to instructing viewers how to use different featuresof a product (e.g., software application, electronic device, etc.). Insuch an example, there are others within the organization, such as thoseassociated with accounting, administration, and marketing, that may wishto know how viewers are responding to the content in order to determinewhether to further continue the series and how to promote marketing forthe series. The other parties can face the same limitations as thecontent creators in determining what viewer sentiment is of content.

Therefore, a solution is needed to provide not just content creators butinterested parties with a sentiment analysis of viewer commentsregarding presented content.

BRIEF SUMMARY

Certain embodiments provide a method for providing a graphical userinterface to manage a sentiment analysis of content. The methodgenerally includes receiving a request for a sentiment analysis ofcontent, wherein the request includes a content ID corresponding to thecontent. The method further includes retrieving a set of commentscorresponding to the content ID. The method further includes providingthe set of comments to a natural language processing service. The methodfurther includes receiving, from the natural language processingservice, a set of sentiment indications, wherein each respectivesentiment indication of the set of sentiment indications is associatedwith a respective comment of the set of comments. The method furtherincludes generating the sentiment analysis based on the set of sentimentindications. The method further includes displaying the sentimentanalysis in a window in a graphical user interface.

Other embodiments provide systems configured to perform methods forproviding a graphical user interface to manage a sentiment analysis ofcontent, such as the aforementioned method, as well as non-transitorycomputer-readable storage mediums comprising instructions that, whenexecuted by a processor of a processing system, cause the processingsystem to perform methods for providing a graphical user interface tomanage a sentiment analysis of content.

The following description and the related drawings set forth in detailcertain illustrative features of one or more embodiments.

BRIEF DESCRIPTION OF THE DRAWINGS

The appended figures depict certain aspects of the one or moreembodiments and are therefore not to be considered limiting of the scopeof this disclosure.

FIG. 1 depicts an example computing environment for generating asentiment analysis of content based on comments from viewers.

FIG. 2 depicts an example flow diagram of generating a sentimentanalysis of content and identifying a viewer associated with a commentin the sentiment analysis.

FIG. 3 depicts an example method for generating a sentiment analysis ofcontent based on comments from viewers.

FIG. 4 depicts an example graphical user interface displaying thesentiment analysis of content based on comments from viewers.

FIG. 5 depicts an example processing system for generating a sentimentanalysis of content based on comments from viewers.

To facilitate understanding, identical reference numerals have beenused, where possible, to designate identical elements that are common tothe drawings. It is contemplated that elements and features of oneembodiment may be beneficially incorporated in other embodiments withoutfurther recitation.

DETAILED DESCRIPTION

Aspects of the present disclosure provide apparatuses, methods,processing systems, and computer readable mediums for generating asentiment analysis of content from viewer comments to display in agraphical user interface of a computing device.

A sentiment analysis service can receive a request for a sentimentanalysis from a user (via a user device). The user requesting thesentiment analysis of content can be the creator of the content. Forexample, the content creator can request a sentiment analysis of audiocontent in order to determine what issues need to be addressed orimproved in the audio content. The user can also be associated with anorganization on whose behalf the content is created. For example, anemployee of an organization working in the marketing department mayrequest a sentiment analysis of content created for the company, such asa series of videos directing viewers on how to use features of arecently launched product. By requesting the sentiment analysis, theemployee of the marketing department can determine how to market thevideo series along with the product.

In order to generate the sentiment analysis of content, upon receiving arequest from a user for a sentiment analysis of content, a sentimentanalysis service retrieves a set of comments associated with thecontent. The sentiment analysis service pre-processes the set ofcomments. For example, the sentiment analysis service removes personalidentifying information of a viewer from a comment. Once the sentimentanalysis service pre-processes the set of comments, the sentimentanalysis service sends the set of comments to a natural languageprocessing services. In turn, the sentiment analysis service receivesfrom the natural language processing service a set of sentimentindications corresponding to the set of comments. The sentiment analysisservice then generates a sentiment analysis of the content based on thesentiment indications received from the natural language processingservice. In some cases, the sentiment analysis service applies thesentiment indication to the associated comment and determines thesentiment category for the comment based on the sentiment indication.Upon generating the sentiment analysis, the sentiment analysis servicedisplays the sentiment analysis to the user in a graphical userinterface also generated by the sentiment analysis service.

In one embodiment, a sentiment analysis service receives a request froma user for a sentiment analysis of content. In some cases, the requestmay be for a single sentiment analysis of a single content item. Inother cases, the request may be for a single sentiment analysis ofmultiple content items (e.g., a series of videos teaching differentfeatures of a product). The request for a sentiment analysis of contentincludes a corresponding content ID, which is used by the sentimentanalysis service to identify a set of comments for a content item. Foreach comment a viewer submits for a content item, the comment isassigned the same content ID as the content item, in order to identifywhich comments are made in regards to a particular content item.

Upon identifying the set of comments associated with the content, thesentiment analysis service pre-processes the set of comments. In suchinstances, the sentiment analysis service extracts personal identifyinginformation about a viewer from the set of comments. The sentimentanalysis service sends the pre-processed set of comments to a naturallanguage processing service, which in return provides a set of sentimentindications (e.g., sentiment scores) that correspond to the set ofcomments. The sentiment analysis service generates a sentiment analysisbased on the sentiment indications. For example, the sentiment analysisservice maps each sentiment indication to a pre-defined sentimentcategory (e.g., positive, negative, and neutral).

The sentiment analysis service then displays the sentiment analysis in awindow of the graphical user interface, which is also generated by thesentiment analysis service. In some cases, the sentiment analysiscomprises a percentage breakdown of comments associated with eachsentiment categories. In other cases, the sentiment analysis alsocomprises a set or subset of comments associated with each sentimentcategory. For example, based on the request, the sentiment analysisservice generates a sentiment analysis indicating out of a total numberof comments associated with a content item, sixty-five percent of thecomments are positive, twenty-five percent of the comments are negative,and ten percent of the comments are neutral. Further, the generatedsentiment analysis can display a subset of comments associated with eachsentiment category. Further still, the generated sentiment analysis candisplay the overall sentiment of the content.

In some cases, the sentiment analysis service can receive an additionalrequest from the user for the contact information associated with aviewer of a comment. For example, in the displayed sentiment analysis,the user can review a subset of comments associated with each sentimentcategory. The user can select a particular comment from the negativesentiment category in which the viewer indicates his extremedissatisfaction with the content. The user can request the sentimentanalysis service provide contact information for the viewer associatedwith the selected comment. In response to receiving the request, thesentiment analysis service can retrieve the contact information of theviewer and provide the contact information to the user.

The method of generating a sentiment analysis of content from viewercomments to display in a graphical user interface allows a user todetermine the overall viewer sentiment of content without having toanalyze each comment individually. Further, the method of generating asentiment analysis of content efficiently utilizes available resourcessuch as comments from viewers and natural language processing serviceswithout overtaxing computation resources of the sentiment analysisservice to generate a sentiment analysis.

Example Computing Environment for Generating a Sentiment Analysis ofContent

FIG. 1 depicts an example computing environment 100 for generating asentiment analysis of content based on comments from viewers of thecontent. The example computing environment 100 comprises a user device102, a sentiment analysis service 104, comment database(s) 112, viewerdevice(s) 114, and natural language processing service 116.

As depicted, the sentiment analysis service 104 includes a graphicaluser interface module 106, a request analyzer module 108, and asentiment analyzer module 110. The graphical user interface module 106provides a graphical user interface to the user device 102 for receivingfrom a user a request for a sentiment analysis of content includingaudio data (e.g., live audio data or previously recorded audio data),video data (live streaming video data or previously recorded videodata), documents, and other such content items developed for viewerconsumption. The user device 102 includes a laptop, smartphone, tablet,or other such computing device for a user to request a sentimentanalysis of content. Once the graphical user interface is provided andthe user requests via the user device 102 a sentiment analysis ofcontent, the request analyzer module 108 of the sentiment analysisservice 104 receives the request.

In some cases, the request for sentiment analysis may be for a singlecontent item. In other cases, the request for sentiment analysis may befor multiple content items. The request for sentiment analysis includesa content identifier (ID) associated with the content for which thesentiment analysis is requested. For example, the request for commentsfor a live video stream includes a content identifier associated withthe live video stream. In another example, the request for comments forpre-recorded audio data includes a content identified associated withsuch pre-recorded audio data. The request analyzer module 108 identifiesthe content ID from the request, and based on the content ID, therequest analyzer module 108 retrieves a set of comments from commentdatabase(s) 112 matching the content ID associated with the content. Insome cases, the sentiment analysis service 104 utilizes advanced AI/MLtechniques to determine comments associated with content. For example, amodel using the Naive Bayes algorithm can calculate the probability acomment is associated with content. The model is trained using a set ofcomments known to be associated with content based on the content ID.For each known comment, the model identifies a set of words within thecomment related to the content and generates a probability for the setof words as being associated with the content.

In some cases, the sentiment analysis service 104 can use AI/MLtechniques to determine the sentiment category of a comment based on theset of words within the comment. For example, a model is trained using aset of comments known to be associated with sentiment categories. Duringtraining, the model identifies for each comment a probability of eachword in the comment as belonging to a sentiment category. For a newcomment, the model determines a probability of each word belonging to asentiment category. The probability of each word in the comment iscombined, and the model determines which sentiment category isassociated with the combined probability and assigns the comment to thesentiment category.

As depicted, viewer device(s) 114 provide comments regarding the contentconsumed by the viewer(s). The comments provided by the viewer device(s)114 of the viewer(s) are stored in one or more comment databases 112 andassigned a content ID according to the content on which the comment isbased. The view device(s) can include laptops, smartphones, tablets, andother such computing devices for a viewer to consume content and providecomment(s) regarding the content. In some cases, the comments forcontent can be stored from multiple sources. For example, viewers cansubmit comments about content through a channel established with thesource or a social media platform associated with either the content orthe organization responsible for the content. The request analyzermodule 108 can request and retrieve a set of comments from the commentdatabase 112 associated with the content for which sentiment analysis isrequested by the user based on the content ID of the request matchingcomments in the comment database 112. For example, the request analyzermodule 108 can retrieve a set of comments associated with a live videostream during the live video stream that has the same content ID as thelive video stream.

The set of comments retrieved by the sentiment analysis service 104 arereceived by the sentiment analyzer module 110. The sentiment analyzermodule 110 pre-processes the comments retrieved from the commentdatabase 112 to send to the natural language processing service 116 andgenerates a sentiment analysis based on sentiment indications receivedfrom the natural language processing service 116. The sentiment analyzermodule 110 includes a personal identifying information (PII) extractor118, a terminology identifier 120, and a sentiment analysis generator122.

Prior to sending the set of comments to the natural language processingservice 116, the sentiment analyzer module 110 pre-processes the set ofcomments. In some cases, the PII extractor 118 can extract and removeany personal identifying information of a viewer from each comment inthe set of comments. The PII extractor 118 can include a pattern matcherthat uses common PII data formats for identifying PII, such asXXX-XX-XXXX format for a social security number, YYY-YYY-YYYY for aphone number, or A@A.com for an email address. Once the pattern matcheridentifies the PII, the PII extractor 118 can extract the PII. In somecases, the PII extractor 118 can replace the PII data with anonymizeddata that is randomly generated. In other cases, pre-processing canfurther include formatting each comment in the set of comments to asingle standard format. For example, extraneous spaces can be removedfrom a comment. Pre-processing can also include the terminologyidentifier 120 identifying a set of keywords in a comment. Theterminology identifier 120 uses a dictionary, which includes a set ofidentified keywords, to determine whether any words in a comment match akeyword in the dictionary. In some cases, the terminology identifier 120replaces any words matching to a keyword in the dictionary with ageneric placeholder. Further still, the terminology identifier 120removes pluralities and cases from words in order to reduce errors fromthe natural language processing service 116.

After pre-processing the set of comments, the sentiment analyzer module110 sends the set of comments to a natural language processing service116, which in turn provides a set of sentiment indications correspondingto each comment in the set of comments. In some cases, a sentimentindication is a sentiment score generated by the natural languageprocessing service 116.

The sentiment analyzer module 110 receives the set of sentimentindications from the natural language processing service 116 andgenerates a sentiment analysis. In some cases, a sentiment analysisgenerator 122 of the sentiment analyzer module 110 generates thesentiment analysis by mapping the sentiment indications to pre-definedsentiment categories. For example, a sentiment indication comprises asentiment score. Each sentiment score is assigned to a sentimentcategory according to the sentiment score range associated with thesentiment category. In some cases, sentiment categories include apositive sentiment, a negative sentiment, and a neutral sentiment. Oncethe sentiment indications are mapped to a sentiment category, thesentiment analysis generator 122 can generate a sentiment analysis,visually depicting how many comments are assigned to the positivesentiment, negative sentiment, and neutral sentiment categories. In somecases, the sentiment analysis can include an overall sentiment,summarizing how many comments are assigned to each sentiment category.For example, the overall sentiment can include a percentage or a totalcount of comments assigned to each sentiment category. In other cases,the visual depiction can include one or more comments associated withthe sentiment indicating in each category. After generating thesentiment analysis, the sentiment analyzer module 110 can display thesentiment analysis to the user via the user device 102 in a window ofthe graphical user interface.

Example Flow Diagram of Generating a Sentiment Analysis and Identifyinga Viewer Associated with a Comment in the Sentiment Analysis

FIG. 2 depicts an example flow diagram 200 of generating a sentimentanalysis and identifying a viewer associated with a comment in thesentiment analysis.

The example flow diagram 200 begins with the sentiment analysis service104 receiving at step 202 a request for a sentiment analysis of contentfrom a user via a user device 102. In some cases, prior to receiving atstep 202 the request for the sentiment analysis of content, thesentiment analysis service 104 provides a graphical user interface to auser via the user device 102. The user can use the graphical userinterface of the user device 102 to submit the request for sentimentanalysis.

After receiving at step 202 the request for sentiment analysis, thesentiment analysis service 104 identifies the content ID associated withthe request for sentiment analysis. With the content ID, the sentimentanalysis service 104 requests at step 204 and receives at step 206 a setof comments from viewers that is associated with the content ID. Forexample, when a viewer submits a comment regarding a content itemconsumed, the comment is stored in the comment database 112 and assignedthe same content ID that is associated with the content item. Afterretrieving the set of comments associated with the content item, thesentiment analysis service 104 pre-processes the comments at step 208.For example, the sentiment analysis service 104 extracts all PII fromthe set of comments in order to protect the identity of the viewer whosubmitted the comment.

The sentiment analysis service 104 sends the pre-processed set ofcomments to a natural language processing service 116 with a request 210for sentiment indications. Following the request 210 for sentimentindications, the sentiment analysis service 104 receives 212 sentimentindications corresponding to the set of pre-processed comments. Forexample, the sentiment analysis service 104 can receive a set ofsentiment score. Each sentiment score corresponds to a comment providedto the natural language processing service indicating the sentiment ofthe viewer with regard to the content consumed.

With the sentiment indications, the sentiment analysis service 104generates at step 214 a sentiment analysis. For example, the sentimentanalysis service 104 maps each sentiment score to a pre-definedsentiment category of positive, negative, and neutral according to thesentiment score range associated with each sentiment category. Aftermapping each sentiment score to the sentiment category, the sentimentanalysis service 104 can visually depict the overall sentimentassociated with a piece of content. In some cases, the sentimentanalysis service 104 generates a sentiment analysis indicating a totalnumber of comments associated with each sentiment category. In othercases, the sentiment analysis service 104 generates a sentiment analysisindicating a percentage of total comments associated with each sentimentcategory. Further, the sentiment analysis service 104 can include in thesentiment analysis a subset of comments associated with each sentimentcategory.

Once the sentiment analysis is generated, the sentiment analysis service104 can display at step 216 the sentiment analysis via the user device102 to the user requesting the sentiment analysis. For example, thesentiment analysis can be displayed in a new window of the graphicaluser interface. In some cases, the sentiment analysis can be displayedin separate panes of the window. For example, a first pane can includethe positive sentiment category and a corresponding subset of comments.A second pane can include the negative sentiment category and acorresponding subset of comments. A third pane can include the neutralsentiment category and a corresponding subset of comments. Additionally,the overall sentiment of the content can be displayed in the window oras a separate pane in the window of the graphical user interface.

In some cases, the sentiment analysis service 104 can receive a request218 from the user via the user device 102 to view the identity of theviewer associated with a comment displayed in the sentiment analysis.For example, if the user identifies via the user device 102 a sentimentindicating the viewer was extremely dissatisfied with the content, thenthe user may want to reach out directly to the viewer to discuss how toimprove the content. In order to do this, the user can submit a requestvia the user device 102 to the sentiment analysis service 104 for theidentity of the viewer.

Upon receiving the request for viewer identity, the sentiment analysisservice 104 can determine at step 220 the identity and contactinformation of a viewer from a database storing contact information ofviewers. In some cases, the database storing contact information ofviewers is co-located with the sentiment analysis service 104. In othercases, the database storing contact information of viewers is locatedremotely from the sentiment analysis service 104. After the sentimentanalysis service 104 determines the identity of the viewer associatedwith the comment and the viewer's contact information, the sentimentanalysis service 104 provides at step 222 the contact information of theviewer to the user device 102.

In some cases, the viewer may have previously agreed to share contactinformation. In such cases, the sentiment analysis service can providethe viewer's contact information to the user. In other cases, the viewermay not have agreed to provide contact information. In such cases, thesentiment analysis service can contact the viewer (e.g., via e-mail ortelephone) to request sharing contact information. If the viewer agreesto share contact information, then the sentiment analysis service canprovide the contact information to the user. If not, then the sentimentanalysis service can provide a message to the user that the viewer'scontact information is unavailable.

Example Method for Generating a Sentiment Analysis of Content

FIG. 3 depicts an example method 300 for generating a sentiment analysisof content based on comments from viewers, as described with respect toFIGS. 1-2.

At step 302, a request is received for a sentiment analysis of content.The request for the sentiment analysis can include a content ID thatcorresponds to the content. In some cases, the request for the sentimentanalysis can be received from a user via a graphical user interface. Forexample, the sentiment analysis service can generate a graphical userinterface in which a user can access and submit a request for sentimentanalysis of content. In other cases, the request for the sentimentanalysis can be for content including documents, live audio and/orvideo, and previously recorded audio and/or video content. In stillother cases, the request for content analysis can be received from acontent creator or other parties associated with the content, asdescribed in FIG. 1.

At step 304, a set of comments is retrieved corresponding to the contentID. In some cases, upon receiving the request for sentiment analysis,the content ID corresponding to the content is identified from therequest. Based on the content ID, the set of comments is retrieved. Insome cases, the set of comments is retrieved from a comment databasethat stores the comments submitted by viewers that have consumedcontent, including the content for which the sentiment analysis isrequested.

At step 306, the set of comments is provided to a natural languageprocessing service. In some cases, the set of comments is pre-processedprior to sending to the natural language processing service. Forexample, all PII of viewers can be removed from the comments in order toprotect the identity and privacy of the viewers. Further, the set ofcomments can be formatted to a single standard. After removing the PIIfrom the set of comments and performing any pre-processing formatting,the set of comments are provided to a natural language processingservice.

At step 308, a set of sentiment indications is received from the naturallanguage processing service. The set of sentiment indicationscorresponds to set of comments provided to the natural languageprocessing service. In some cases, the set of sentiment indications caninclude a sentiment score generated for each sentiment in the set ofsentiments.

At step 310, a sentiment analysis is generated. In some cases, thesentiment analysis is generated by mapping each sentiment indication toa pre-defined sentiment category. Further, the sentiment analysisgenerated visually depicts the sentiment mapping to indicate the overallsentiment of content from viewers as well as a breakdown of illustratingthe sentiment associated with each sentiment category. In some cases,the sentiment analysis is based on percentages or total count ofcomments associated with each sentiment category.

At step 312, the sentiment analysis is displayed in the graphical userinterface. In some cases, a new window is generated to display thesentiment analysis of the content.

Example Graphical User Interface Displaying the Sentiment Analysis ofContent

FIG. 4 depicts an example graphical user interface 400 displaying thesentiment analysis of content, as described with respect to FIGS. 1-3.

As depicted, the sentiment analysis of content is displayed in a window402 of the example graphical user interface 400. In the window 402, thesentiment analysis of content is graphically depicted in set of panes,as described with respect to FIG. 2. Each pane of the window depicts onesentiment category and the comments associated with the sentimentcategory. For example, in window 402, the positive sentiment category isdepicted in a pane with comments such as “This is great! !” and “veryhelpful—learned a lot.”

Further, the overall sentiment of the content is indicated in a pane ofthe window 402. For example, in window 402, the percentages associatedwith each sentiment category is displayed as well as illustrated. Asdepicted, the overall sentiment of the content includes 72% of commentsassociated with the positive sentiment category, 13% of commentsassociated with the negative sentiment category, and 15% of commentsassociated with the neutral sentiment category.

Example Processing System for Generating a Sentiment Analysis of Content

FIG. 5 depicts an example processing system 500 that may perform methodsdescribed herein, such as the method for generating a sentiment analysisto display in a graphical user interface described with respect to FIGS.1-3.

Processing system 500 includes a central processing unit (CPU) 502connected to a data bus 512. CPU 502 is configured to processcomputer-executable instructions, e.g., stored in memory 514 or storage516, and to cause the processing system 500 to perform methods describedherein, for example with respect to FIGS. 1-3. CPU 502 is included to berepresentative of a single CPU, multiple CPUs, a single CPU havingmultiple processing cores, and other forms of processing architecturecapable of executing computer-executable instructions.

Processing system 500 further includes input/output (I/O) device(s) 508and interface(s) 504, which allows processing system 500 to interfacewith input/output devices 508, such as, for example, keyboards,displays, mouse devices, pen input, and other devices that allow forinteraction with processing system 500. Note that processing system 500may connect with external I/O devices through physical and wirelessconnections (e.g., an external display device).

Processing system 500 further includes network interface 510, whichprovides processing system 500 with access to external networks 506 andthereby external computing devices.

Processing system 500 further includes memory 514, which in this exampleincludes receiving module 518, retrieving module 520, providing module522, generating module 524, and displaying module 526 for performingoperations described in FIGS. 1-4.

Note that while shown as a single memory 514 in FIG. 5 for simplicity,the various aspects stored in memory 514 may be stored in differentphysical memories, but all accessible by CPU 502 via internal dataconnections such as bus 512.

Storage 516 further includes comment data 528, which may be likecomments retrieved from a comment database, as described in FIGS. 1-3.

Storage 516 further includes pre-processed comment data 530, which maybe like the set of comments processed prior to providing to a naturallanguage service, as described in FIGS. 1-3.

Storage 516 further includes terminology data 532, which may be like theterminology data identified in the set of comments corresponding to thesentiment indications from the natural language processing service, asdescribed in FIG. 1.

Storage 516 further includes sentiment data 534, which may include thesentiment indications received from the natural language processingservice, as described in FIGS. 1-3.

Storage 516 further includes analysis data 536, which may include thesentiment analysis generated from the sentiment data 534, as describedin FIGS. 1-3.

While not depicted in FIG. 5, other aspects may be included in storage516.

As with memory 514, a single storage 516 is depicted in FIG. 5 forsimplicity, but the various aspects stored in storage 516 may be storedin different physical storages, but all accessible to CPU 502 viainternal data connections, such as bus 512, or external connection, suchas network interface 510. One of skill in the art will appreciate thatone or more elements of processing system 500 may be located remotelyand accessed via a network.

The preceding description is provided to enable any person skilled inthe art to practice the various embodiments described herein. Theexamples discussed herein are not limiting of the scope, applicability,or embodiments set forth in the claims. Various modifications to theseembodiments will be readily apparent to those skilled in the art, andthe generic principles defined herein may be applied to otherembodiments. For example, changes may be made in the function andarrangement of elements discussed without departing from the scope ofthe disclosure. Various examples may omit, substitute, or add variousprocedures or components as appropriate. For instance, the methodsdescribed may be performed in an order different from that described,and various steps may be added, omitted, or combined. Also, featuresdescribed with respect to some examples may be combined in some otherexamples. For example, an apparatus may be implemented or a method maybe practiced using any number of the aspects set forth herein. Inaddition, the scope of the disclosure is intended to cover such anapparatus or method that is practiced using other structure,functionality, or structure and functionality in addition to, or otherthan, the various aspects of the disclosure set forth herein. It shouldbe understood that any aspect of the disclosure disclosed herein may beembodied by one or more elements of a claim.

As used herein, a phrase referring to “at least one of” a list of itemsrefers to any combination of those items, including single members. Asan example, “at least one of: a, b, or c” is intended to cover a, b, c,a-b, a-c, b-c, and a-b-c, as well as any combination with multiples ofthe same element (e.g., a-a, a-a-a, a-a-b, a-a-c, a-b-b, a-c-c, b-b,b-b-b, b-b-c, c-c, and c-c-c or any other ordering of a, b, and c).

As used herein, the term “determining” encompasses a wide variety ofactions. For example, “determining” may include calculating, computing,processing, deriving, investigating, looking up (e.g., looking up in atable, a database or another data structure), ascertaining and the like.Also, “determining” may include receiving (e.g., receiving information),accessing (e.g., accessing data in a memory) and the like. Also,“determining” may include resolving, selecting, choosing, establishingand the like.

The methods disclosed herein comprise one or more steps or actions forachieving the methods. The method steps and/or actions may beinterchanged with one another without departing from the scope of theclaims. In other words, unless a specific order of steps or actions isspecified, the order and/or use of specific steps and/or actions may bemodified without departing from the scope of the claims. Further, thevarious operations of methods described above may be performed by anysuitable means capable of performing the corresponding functions. Themeans may include various hardware and/or software component(s) and/ormodule(s), including, but not limited to a circuit, an applicationspecific integrated circuit (ASIC), or processor. Generally, where thereare operations illustrated in figures, those operations may havecorresponding counterpart means-plus-function components with similarnumbering.

The various illustrative logical blocks, modules and circuits describedin connection with the present disclosure may be implemented orperformed with a general purpose processor, a digital signal processor(DSP), an application specific integrated circuit (ASIC), a fieldprogrammable gate array (FPGA) or other programmable logic device (PLD),discrete gate or transistor logic, discrete hardware components, or anycombination thereof designed to perform the functions described herein.A general-purpose processor may be a microprocessor, but in thealternative, the processor may be any commercially available processor,controller, microcontroller, or state machine. A processor may also beimplemented as a combination of computing devices, e.g., a combinationof a DSP and a microprocessor, a plurality of microprocessors, one ormore microprocessors in conjunction with a DSP core, or any other suchconfiguration.

A processing system may be implemented with a bus architecture. The busmay include any number of interconnecting buses and bridges depending onthe specific application of the processing system and the overall designconstraints. The bus may link together various circuits including aprocessor, machine-readable media, and input/output devices, amongothers. A user interface (e.g., keypad, display, mouse, joystick, etc.)may also be connected to the bus. The bus may also link various othercircuits such as timing sources, peripherals, voltage regulators, powermanagement circuits, and other circuit elements that are well known inthe art, and therefore, will not be described any further. The processormay be implemented with one or more general-purpose and/orspecial-purpose processors. Examples include microprocessors,microcontrollers, DSP processors, and other circuitry that can executesoftware. Those skilled in the art will recognize how best to implementthe described functionality for the processing system depending on theparticular application and the overall design constraints imposed on theoverall system.

If implemented in software, the functions may be stored or transmittedover as one or more instructions or code on a computer-readable medium.Software shall be construed broadly to mean instructions, data, or anycombination thereof, whether referred to as software, firmware,middleware, microcode, hardware description language, or otherwise.Computer-readable media include both computer storage media andcommunication media, such as any medium that facilitates transfer of acomputer program from one place to another. The processor may beresponsible for managing the bus and general processing, including theexecution of software modules stored on the computer-readable storagemedia. A computer-readable storage medium may be coupled to a processorsuch that the processor can read information from, and write informationto, the storage medium. In the alternative, the storage medium may beintegral to the processor. By way of example, the computer-readablemedia may include a transmission line, a carrier wave modulated by data,and/or a computer readable storage medium with instructions storedthereon separate from the wireless node, all of which may be accessed bythe processor through the bus interface. Alternatively, or in addition,the computer-readable media, or any portion thereof, may be integratedinto the processor, such as the case may be with cache and/or generalregister files. Examples of machine-readable storage media may include,by way of example, RAM (Random Access Memory), flash memory, ROM (ReadOnly Memory), PROM (Programmable Read-Only Memory), EPROM (ErasableProgrammable Read-Only Memory), EEPROM (Electrically ErasableProgrammable Read-Only Memory), registers, magnetic disks, opticaldisks, hard drives, or any other suitable storage medium, or anycombination thereof. The machine-readable media may be embodied in acomputer-program product.

A software module may comprise a single instruction, or manyinstructions, and may be distributed over several different codesegments, among different programs, and across multiple storage media.The computer-readable media may comprise a number of software modules.The software modules include instructions that, when executed by anapparatus such as a processor, cause the processing system to performvarious functions. The software modules may include a transmissionmodule and a receiving module. Each software module may reside in asingle storage device or be distributed across multiple storage devices.By way of example, a software module may be loaded into RAM from a harddrive when a triggering event occurs. During execution of the softwaremodule, the processor may load some of the instructions into cache toincrease access speed. One or more cache lines may then be loaded into ageneral register file for execution by the processor. When referring tothe functionality of a software module, it will be understood that suchfunctionality is implemented by the processor when executinginstructions from that software module.

The following claims are not intended to be limited to the embodimentsshown herein, but are to be accorded the full scope consistent with thelanguage of the claims. Within a claim, reference to an element in thesingular is not intended to mean “one and only one” unless specificallyso stated, but rather “one or more.” Unless specifically statedotherwise, the term “some” refers to one or more. No claim element is tobe construed under the provisions of 35 U.S.C. § 112(f) unless theelement is expressly recited using the phrase “means for” or, in thecase of a method claim, the element is recited using the phrase “stepfor.” All structural and functional equivalents to the elements of thevarious aspects described throughout this disclosure that are known orlater come to be known to those of ordinary skill in the art areexpressly incorporated herein by reference and are intended to beencompassed by the claims. Moreover, nothing disclosed herein isintended to be dedicated to the public regardless of whether suchdisclosure is explicitly recited in the claims.

What is claimed is:
 1. A method for providing a graphical user interfaceto manage a sentiment analysis of content, comprising: assigning acontent ID to each comment in a set of comments indicating that eachcomment is associated with a content item; receiving a request for asentiment analysis of the content item, wherein the request includes thecontent ID; retrieving the set of comments based on the content ID;providing the set of comments to a natural language processing service;receiving, from the natural language processing service, a set ofsentiment indications, wherein each respective sentiment indication ofthe set of sentiment indications is associated with a respective commentof the set of comments; generating the sentiment analysis for thecontent item based on the set of sentiment indications; and displayingthe sentiment analysis in a window in the graphical user interface. 2.The method of claim 1, wherein the window in the graphical userinterface comprises: a first pane displaying a comment of the set ofcomments with a positive sentiment category; a second pane displaying acomment of the set of comments with a negative sentiment category; athird pane displaying a comment of the set of comments with a neutralsentiment category; and an overall sentiment based on the set ofsentiment indications.
 3. The method of claim 1, wherein the methodfurther comprises: receiving a selection of a comment in the displayedsentiment analysis; identifying a viewer associated with the comment;and providing contact information of the identified viewer.
 4. Themethod of claim 1, further comprising removing a plurality of words inthe set of comments based on matching each word in the plurality ofwords to a keyword from a dictionary.
 5. The method of claim 1, furthercomprising removing personal identifying information from the set ofcomments prior to providing the set of comments to the natural languageprocessing service.
 6. The method of claim 1, wherein each sentimentindication in the set of sentiment indications comprises a sentimentscore that corresponds to a sentiment score range associated with: apositive sentiment category; a negative sentiment category; or a neutralsentiment category.
 7. The method of claim 1, wherein: the content ID isassociated with a live video stream; and the set of comments arereceived during the live video stream.
 8. The method of claim 1, whereindisplaying the sentiment analysis comprises displaying a distribution ofeach comment of the set of comments and the associated sentimentindication of the set of sentiment indications.
 9. The method of claim8, wherein displaying the sentiment analysis further comprisesdisplaying a sentiment score for each respective comment of the set ofcomments in the graphical user interface.
 10. The method of claim 1,wherein retrieving the set of comments based on the content ID comprisesretrieving the set of comments from a comment database, wherein thecomment database comprises sets of comments for a plurality of contentitems, wherein each content item is associated with a respective contentID.
 11. A system, comprising: a memory storing computer-executableinstructions; a processor configured to execute the computer-executableinstructions and cause the system to: assign a content ID to eachcomment in a set of comments indicating that each comment is associatedwith a content item; receive a request for a sentiment analysis of thecontent item, wherein the request includes the content ID; retrieve theset of comments based on the content ID; provide the set of comments toa natural language processing service; receive, from the naturallanguage processing service, a set of sentiment indications, whereineach respective sentiment indication of the set of sentiment indicationsis associated with a respective comment of the set of comments; generatethe sentiment analysis for the content item based on the set ofsentiment indications; and display the sentiment analysis in a window ina graphical user interface.
 12. The system of claim 11, wherein thewindow in the graphical user interface comprises: a first panedisplaying a comment of the set of comments with a positive sentimentcategory; a second pane displaying a comment of the set of comments witha negative sentiment category; a third pane displaying a comment of theset of comments with a neutral sentiment category; and an overallsentiment based on the set of sentiment indications.
 13. The system ofclaim 11, wherein the processor is further configured to cause thesystem to: receive a selection of a comment in the displayed sentimentanalysis; identify a viewer associated with the comment; and providecontact information of the identified viewer.
 14. The system of claim11, wherein the processor is further configured to cause the system toremove a plurality of words in the set of comments based on matchingeach word in the plurality of words to a keyword from a dictionary. 15.The system of claim 11, wherein the processor is further configured tocause the system to remove personal identifying information from the setof comments prior to providing the set of comments to the naturallanguage processing service.
 16. The system of claim 11, wherein eachsentiment indication in the set of sentiment indications comprises asentiment score that corresponds to a sentiment score range associatedwith: a positive sentiment category; a negative sentiment category; or aneutral sentiment category.
 17. The system of claim 11, wherein: thecontent ID is associated with a live video stream; and the set ofcomments are received during the live video stream.
 18. The system ofclaim 11, wherein the processor being configured to cause the system todisplay the sentiment analysis comprises the processor being configuredto cause the system to display a distribution of each comment of the setof comments and the associated sentiment indication of the set ofsentiment indications.
 19. The system of claim 18, wherein the processorbeing configured to cause the system to display the sentiment analysisfurther comprises the processor being configured to cause the system todisplay a sentiment score for each respective comment of the set ofcomments in the graphical user interface.
 20. A method for providing agraphical user interface to manage a sentiment analysis of content,comprising: assigning a content ID to each comment in a set of commentsindicating that each comment in the set of comments is associated with acontent item; receiving a request for sentiment analysis of the contentitem, wherein the request includes the content ID; retrieving the set ofcomments based on the content ID; confirming that each comment in theset of comments is related to the content item by, for each respectivecomment in the set of comments: identifying a set of words in therespective comment; and generating a probability for the set of wordsindicating whether the set of words is related to the content item;generating, using a machine learning model trained to output sentimentanalysis when receiving a set of comments as input, a sentiment analysisfor the content item by, for each respective comment in the set ofcomments: identifying a probability for each word in the respectivecomment indicating a sentiment category for each word; determining asentiment probability for the respective comment based on theprobability for each word in the respective comment; and determining asentiment category for the respective comment based on the sentimentprobability for the respective comment; and displaying the sentimentanalysis in the graphical user interface.